package com.example.student.service;

import com.example.student.entity.SysNotification;
import com.example.student.model.NotificationVO;
import com.example.student.model.PageResult;

public interface NotificationService {

    /**
     * 获取通知列表
     */
    PageResult<NotificationVO> getNotificationList(String title, Integer type, Integer pageNum, Integer pageSize);

    /**
     * 获取通知详情
     */
    NotificationVO getNotificationById(Long id);

    /**
     * 获取未读通知数量
     */
    Integer getUnreadCount();

    /**
     * 标记通知为已读
     */
    void markAsRead(Long id);

    /**
     * 标记所有通知为已读
     */
    void markAllAsRead();

    /**
     * 添加通知
     */
    void addNotification(SysNotification notification);

    /**
     * 更新通知
     */
    void updateNotification(SysNotification notification);

    /**
     * 删除通知
     */
    void deleteNotification(Long id);
} 